home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / AGSONE.ZIP / ONELINER.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1994-08-16  |  5.6 KB  |  358 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  TINTEGER002(1)
  22.     Integer  TINTEGER003(1)
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     String   TSTRING001(7)
  29.     String   TSTRING002(7)
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   STRING007
  35.     String   STRING008
  36.     String   STRING009
  37.     String   STRING010
  38.     String   STRING011
  39.     String   STRING012
  40.     String   STRING013
  41.  
  42. ;------------------------------------------------------------------------------
  43.  
  44.     FOpen 1, PPEPath() + "oneliner.cfg", 0, 0
  45.     FGet 1, STRING007
  46.     FGet 1, STRING008
  47.     FGet 1, STRING009
  48.     FGet 1, STRING010
  49.     FGet 1, STRING011
  50.     FGet 1, INTEGER007
  51.     FClose 1
  52.     STRING009 = Left(STRING009, 4)
  53.     STRING007 = Left(STRING007, 4)
  54.     STRING008 = Left(STRING008, 4)
  55.     STRING010 = Left(STRING010, 4)
  56.     STRING011 = Left(STRING011, 4)
  57.     Cls
  58.     StartDisp 1
  59.     TINTEGER002(0) = 3
  60.     TINTEGER003(0) = 1
  61.     TINTEGER002(1) = 77
  62.     TINTEGER003(1) = 2
  63.     FOpen 1, PPEPath() + "oneliner.dat", 0, 0
  64.     For INTEGER001 = 0 To 7
  65.         FGet 1, TSTRING002(INTEGER001)
  66.         FGet 1, TSTRING001(INTEGER001)
  67.     Next
  68.     FClose 1
  69.     Cls
  70.     PrintLn STRING009 + "────────────────────────────────────────────────────────────────────────────" + STRING007 + "─" + STRING008 + "──"
  71.     PrintLn STRING008 + "           " + STRING007 + "■" + STRING010 + "■" + STRING011 + "■ " + STRING007 + "P" + STRING010 + "CB" + STRING011 + "oard " + STRING007 + "A" + STRING010 + "EG" + STRING011 + "IS " + STRING007 + "O" + STRING010 + "ne" + STRING011 + "Liner " + STRING007 + "b" + STRING010 + "y " + STRING007 + "L" + STRING010 + "on" + STRING011 + "e " + STRING007 + "R" + STRING010 + "un" + STRING011 + "ner" + STRING007 + "/A" + STRING010 + "EG" + STRING011 + "IS " + STRING007 + "C" + STRING010 + "or" + STRING011 + "p ■" + STRING010 + "■" + STRING007 + "■"
  72.     PrintLn STRING008 + "──" + STRING007 + "─" + STRING009 + "────────────────────────────────────────────────────────────────────────────"
  73.     PrintLn 
  74.     For INTEGER001 = 0 To 7
  75.         PrintLn TSTRING002(INTEGER001)
  76.         PrintLn TSTRING001(INTEGER001)
  77.     Next
  78.     PrintLn 
  79.     PrintLn STRING011 + "Say what you wana say " + STRING008 + "!"
  80.     Print "? @X07_"
  81.     While (1) Do
  82.         If (INTEGER008 < 1) Then
  83.             Gosub LABEL012
  84.             If (INTEGER005 < INTEGER006 + 1) Goto LABEL001
  85.             INTEGER006 = INTEGER005
  86.             INTEGER008 = 0
  87.             INTEGER004 = 0
  88.             Gosub LABEL005
  89.             STRING003 = Inkey()
  90.             If (STRING003 <> "") Goto LABEL002
  91.             INTEGER004 = 1
  92.             Gosub LABEL005
  93.         Endif
  94.         :LABEL001
  95.         STRING003 = Inkey()
  96.         Dec INTEGER008
  97.         If (Len(STRING003) > 1) Goto LABEL001
  98.         If (STRING003 == "") Continue
  99.         :LABEL002
  100.         If (STRING003 <> "") Then
  101.             INTEGER008 = INTEGER007
  102.             If (STRING003 == Chr(13)) Goto LABEL008
  103.             If (Asc(STRING003) > 31) Then
  104.                 If (Len(STRING004) > 75) Continue
  105.                 AnsiPos Len(STRING004) + 3, 23
  106.                 STRING012 = Right(STRING004, 1)
  107.                 STRING013 = Left(Right(STRING004, 2), 1)
  108.                 If ((STRING012 <> "") && (STRING012 <> " ")) Then
  109.                     If ((STRING013 <> "") && (STRING013 <> " ")) Then
  110.                         Print STRING009
  111.                         Goto LABEL003
  112.                     Endif
  113.                     Print STRING008
  114.                     :LABEL003
  115.                     Goto LABEL004
  116.                 Endif
  117.                 Print STRING007
  118.                 :LABEL004
  119.                 STRING004 = STRING004 + STRING003
  120.                 Print STRING003 + "@X07_" + Chr(8)
  121.             Endif
  122.             If (Asc(STRING003) == 8) Then
  123.                 STRING004 = Mid(STRING004, 1, Len(STRING004) - 1)
  124.                 AnsiPos Len(STRING004) + 3, 23
  125.                 Print STRING010
  126.                 Print "  "
  127.                 AnsiPos Len(STRING004) + 3, 23
  128.                 Print "@X07_" + Chr(8)
  129.             Endif
  130.         Endif
  131.         Goto LABEL001
  132.     EndWhile
  133.     :LABEL005
  134.     If (TINTEGER003(INTEGER004) == 1) Then
  135.         If ((TINTEGER002(INTEGER004) > 2) && (TINTEGER002(INTEGER004) < 79)) Then
  136.             Inc TINTEGER002(INTEGER004)
  137.             If (INTEGER004) Then
  138.                 AnsiPos TINTEGER002(INTEGER004) - 3, 1
  139.             Else
  140.                 AnsiPos TINTEGER002(INTEGER004) - 3, 3
  141.             Endif
  142.             Print STRING009
  143.             Print "─"
  144.             Print STRING008
  145.             Print "──"
  146.             Print STRING007
  147.             Print "─"
  148.         Else
  149.             Select Case (TINTEGER002(INTEGER004))
  150.                 Case 79
  151.                     Inc TINTEGER002(INTEGER004)
  152.                     If (INTEGER004) Then
  153.                         AnsiPos TINTEGER002(INTEGER004) - 3, 1
  154.                     Else
  155.                         AnsiPos TINTEGER002(INTEGER004) - 3, 3
  156.                     Endif
  157.                     Print STRING008
  158.                     Print "─"
  159.                     Print STRING007
  160.                     Print "─"
  161.                     Print STRING008
  162.                     Print "─"
  163.                 Case 80
  164.                     TINTEGER002(INTEGER004) = 77
  165.                     TINTEGER003(INTEGER004) = 0
  166.                     If (INTEGER004) Then
  167.                         AnsiPos TINTEGER002(INTEGER004), 1
  168.                     Else
  169.                         AnsiPos TINTEGER002(INTEGER004), 3
  170.                     Endif
  171.                     Print STRING007
  172.                     Print "─"
  173.                     Print STRING008
  174.                     Print "──"
  175.                 Else
  176.                 Case TINTEGER002((INTEGER004 > 0))
  177.                     Dec TINTEGER002(INTEGER004)
  178.                     If (INTEGER004) Then
  179.                         AnsiPos TINTEGER002(INTEGER004), 1
  180.                     Else
  181.                         AnsiPos TINTEGER002(INTEGER004), 3
  182.                     Endif
  183.                     Print STRING007
  184.                     Print "─"
  185.                     Print STRING008
  186.                     Print "──"
  187.                     Print STRING009
  188.                     Print "─"
  189.                 Case 1
  190.                     Dec TINTEGER002(INTEGER004)
  191.                     If (INTEGER004) Then
  192.                         AnsiPos TINTEGER002(INTEGER004) + 1, 1
  193.                     Else
  194.                         AnsiPos TINTEGER002(INTEGER004) + 1, 3
  195.                     Endif
  196.                     Print STRING008
  197.                     Print "─"
  198.                     Print STRING007
  199.                     Print "─"
  200.                     Print STRING008
  201.                     Print "─"
  202.                 Case 0
  203.                     TINTEGER002(INTEGER004) = 3
  204.                     TINTEGER003(INTEGER004) = 1
  205.                     If (INTEGER004) Then
  206.                         AnsiPos TINTEGER002(INTEGER004) - 2, 1
  207.                         Goto LABEL006
  208.                     Endif
  209.                     AnsiPos TINTEGER002(INTEGER004) - 2, 3
  210.                     :LABEL006
  211.                     Print STRING008
  212.                     Print "──"
  213.                     Print STRING007
  214.                     Print "─"
  215.                     Goto LABEL007
  216.                 Endif
  217.             Endif
  218.     End Select
  219.     :LABEL007
  220.     Return
  221.     :LABEL008
  222.     AnsiPos Len(STRING004) + 3, 23
  223.     Color 7
  224.     Print " "
  225.     AnsiPos 1, 23
  226.     If (STRING004 == "") Goto LABEL009
  227.     Delete PPEPath() + "ONELINER.DAT"
  228.     FOpen 1, PPEPath() + "ONELINER.DAT", 1, 0
  229.     For INTEGER001 = 1 To 7
  230.         FPutLn 1, TSTRING002(INTEGER001)
  231.         FPutLn 1, TSTRING001(INTEGER001)
  232.     Next
  233.     If (Psa(1) && Alias()) Then
  234.         TpaGet "PCBALIAS", STRING005
  235.     Else
  236.         STRING005 = U_Name()
  237.     Endif
  238.     STRING005 = Trim(STRING005, " ")
  239.     If (STRING005 == "") STRING005 = U_Name()
  240.     Gosub LABEL011
  241.     FPutLn 1, STRING008 + STRING005 + " " + STRING007 + "wrote on " + STRING008 + String(Date())
  242.     FPutLn 1, STRING011 + STRING004
  243.     FClose 1
  244.     PrintLn 
  245.     PrintLn STRING010 + "Thanks for using the AEGIS Oneliner !"
  246.     Goto LABEL010
  247.     :LABEL009
  248.     PrintLn 
  249.     PrintLn STRING010 + "Too bad... :("
  250.     :LABEL010
  251.     PrintLn 
  252.     Delay 9
  253.     StartDisp 2
  254.     End
  255.     :LABEL011
  256.     STRING006 = ""
  257.     BOOLEAN001 = 1
  258.     For INTEGER001 = 1 To Len(STRING005)
  259.         If (BOOLEAN001) Then
  260.             STRING006 = STRING006 + Upper(Mid(STRING005, INTEGER001, 1))
  261.         Else
  262.             STRING006 = STRING006 + Lower(Mid(STRING005, INTEGER001, 1))
  263.         Endif
  264.         If (Mid(STRING005, INTEGER001, 1) == " ") Then
  265.             BOOLEAN001 = 1
  266.             Continue
  267.         Endif
  268.         BOOLEAN001 = 0
  269.     Next
  270.     STRING005 = STRING006
  271.     Return
  272.     :LABEL012
  273.     INTEGER005 = PeekDW(MkAddr(64, 108))
  274.     Return
  275.  
  276. ;------------------------------------------------------------------------------
  277. ;
  278. ; Usage report (before postprocessing)
  279. ;
  280. ; ■ Statements used :
  281. ;
  282. ;    1       End
  283. ;    2       Cls
  284. ;    1       Color 
  285. ;    59      Goto 
  286. ;    43      Let 
  287. ;    41      Print 
  288. ;    13      PrintLn 
  289. ;    35      If 
  290. ;    3       FOpen 
  291. ;    3       FClose 
  292. ;    8       FGet 
  293. ;    4       FPutLn 
  294. ;    2       StartDisp 
  295. ;    1       Delete 
  296. ;    4       Gosub 
  297. ;    3       Return
  298. ;    1       Delay 
  299. ;    2       Inc 
  300. ;    3       Dec 
  301. ;    17      AnsiPos 
  302. ;    1       TpaGet 
  303. ;
  304. ;
  305. ; ■ Functions used :
  306. ;
  307. ;    100     +
  308. ;    7       -
  309. ;    11      ==
  310. ;    6       <>
  311. ;    8       <
  312. ;    4       <=
  313. ;    5       >
  314. ;    8       >=
  315. ;    27      !
  316. ;    13      &&
  317. ;    4       ||
  318. ;    9       Len(
  319. ;    1       Lower()
  320. ;    1       Upper()
  321. ;    4       Mid()
  322. ;    6       Left()
  323. ;    2       Right()
  324. ;    3       Chr()
  325. ;    2       Asc()
  326. ;    1       Trim()
  327. ;    1       Date()
  328. ;    2       U_Name()
  329. ;    2       Inkey()
  330. ;    1       String()
  331. ;    4       PPEPath()
  332. ;    1       MkAddr()
  333. ;    1       Psa()
  334. ;    1       PeekDW()
  335. ;    1       Alias()
  336. ;
  337. ;------------------------------------------------------------------------------
  338. ;
  339. ; Analysis flags : p
  340. ;
  341. ; p - Peek in memory ■ 2
  342. ;     Since a peek statement allows someone to read entire memory contents
  343. ;     you may check this statement, however, this is usually not a risk
  344. ;     ■ Search for : PEEK, PEEKW, PEEKDW
  345. ;
  346. ;------------------------------------------------------------------------------
  347. ;
  348. ; Postprocessing report
  349. ;
  350. ;    4       For/Next
  351. ;    1       While/EndWhile
  352. ;    17      If/Then or If/Then/Else
  353. ;    1       Select Case
  354. ;
  355. ;------------------------------------------------------------------------------
  356. ;                 AEGiS Corp - Break the routines, code against the machines!
  357. ;------------------------------------------------------------------------------
  358.